//您会遇到的最常见的类型是对象类型。这指的是任何带有属性的 JavaScript 值，几乎是所有属性！要定义对象类型，我们只需列出其属性及其类型。

// 您可以使用,或;分隔属性，最后一个分隔符是可选的。

// 每个属性的类型部分也是可选的。如果不指定类型，则假定为any.

type a = {
    b:string,
    c:number;
    d?:[];
    e   //隐式any
}
// 1、对象类型的属性可以用,或;隔开
// 2、对象的属性可以不设置类型，会被判定为隐式any
// 3、属性后面加一个问号就是可选属性
function printName(obj: { first: string; last?: string }) {
    // Error - might crash if 'obj.last' wasn't provided!
   
   
    // A safe alternative using modern JavaScript syntax:
    console.log(obj.last?.toUpperCase()); //last属性可传可不传，所以这里防止没有传，调用报错，就用可选链处理
  }

